package w83b.w83bOperacionesPaso.w83bIncidencias;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.json.JSONArray;
import org.json.JSONObject;

import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bTablaAgrupacionesOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83bNoExisteDniDelegadosOutOPAction extends Q70ActionPasoOP{

	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//Guardamos la accion en el contexto
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

		JSONObject raiz = new JSONObject();
		JSONArray listaDnis = new JSONArray();
		JSONArray listaDnisRepetidos = new JSONArray();
		
		List listaRespuestasDni = (List)contexto.get("w83bListaDnis");
		
		List listaDnisComp = new ArrayList();
		
		for(int i=0,size=listaRespuestasDni.size();i<size;i++){
			JSONObject objeto = new JSONObject();//NOPMD
			HashMap mapaRespuesta = (HashMap)listaRespuestasDni.get(i);
			Iterator  it = mapaRespuesta.keySet().iterator();
			while(it.hasNext()){
				String dni = (String)it.next();
				String respuesta = (String)mapaRespuesta.get(dni);
				if(-1!=dni.indexOf("_delegado")){
					objeto.put("dniDelegado",respuesta);
				}else if(-1!=dni.indexOf("_fechaEntrada")){ 
					objeto.put("respuestaFechaEntrada",respuesta);					
				}else{
					objeto.put("dni",dni);
					listaDnisComp.add(dni);
					objeto.put("respuesta",respuesta);					
				}
			}
			listaDnis.put(objeto);					
		}
		
		for(int i=0,size=listaDnisComp.size();i<size;i++){
			if(i!=listaDnisComp.lastIndexOf(listaDnisComp.get(i))){
				JSONObject objeto = new JSONObject();//NOPMD
				objeto.put("dniRepetido",listaDnisComp.get(i));	
				
				listaDnisRepetidos.put(objeto);
			}
		}
		
		raiz.put("listaRespuestas",listaDnis);
		raiz.put("listaDnisRepetidos",listaDnisRepetidos);
		
		response.setContentType("text/javascript;charset=iso-8859-1");
		response.setHeader("Pragma", "cache");
		response.setHeader("Expires", "0");
		response.setHeader("Cache-Control", "private");
		response.setStatus(HttpServletResponse.SC_OK);
		PrintWriter out = response.getWriter();
		out.print(raiz.toString());
		out.flush();
		
		return null;
	}
	


}
